# ==================================================================================
# 数据库协议生成器（DB Protocol）
# ==================================================================================
# 功能说明：
#   编译数据库相关的协议文件
#   定义了游戏服务器与数据库层之间的数据结构
# 
# 输入：
#   ${PROTOCOL_DB_META_PATH}/*.proto  - 数据库协议定义文件
# 
# 输出：
#   .pb.h / .pb.cc      - 标准C++ Protobuf代码
#   .nanopb.h / .cc     - NanoPB嵌入式代码
# 
# 应用场景：
#   - 玩家数据持久化结构
#   - 公会、好友等社交数据
#   - 背包、装备等物品数据
#   - 排行榜数据
#   - 邮件系统数据
#   - 数据库缓存层协议
# ==================================================================================

include ./define.makefile
.PHONY:all

all:${PROTOCOL_DB_LOGIC_H} ${PROTOCOL_DB_LOGIC_CPP} ${PROTOCOL_DB_STRUCT_H} ${PROTOCOL_DB_STRUCT_CPP}

# ----------------------------------
# 编译数据库协议文件
# ----------------------------------
${PROTOCOL_DB_LOGIC_H} ${PROTOCOL_DB_LOGIC_CPP} ${PROTOCOL_DB_STRUCT_H} ${PROTOCOL_DB_STRUCT_CPP}:${PROTOCOL_DB_LOGIC_XML}
	@echo "  创建目标目录..."
	mkdir -p ${PROTOCGEN_FILE_PATH}
	mkdir -p ${NEW_PROTOCGEN_FILE_PATH}
	@echo "  编译数据库协议（生成C++和NanoPB代码）..."
	${PROTOC} $^ --plugin=protoc-gen-nanopb=${NANOPB_PLUGIN}  -I${THIRD_PARTY_INC_PATH} -I${NANOPB_PLUGIN_PROTO} -I${PROTOCOL_PATH} -I${PROTOCOL_SS_PATH} -I${PROTOCOL_SS_LOGIC_PATH}  -I${PROTOCOL_CS_LOGIC_PATH} -I${COMMON_LOGIC_META_PATH} -I${RESDB_META_PATH} -I${PROTOCOL_DB_META_PATH} --cpp_out=${PROTOCGEN_FILE_PATH} --nanopb_out=-e.nanopb:${PROTOCGEN_FILE_PATH}
	@echo "  复制生成的文件到逻辑消息目录..."
	${FILE_COPY_EXE} --work="filecopy" --patch=${GAME_VERSION_PATCH} --src="${PROTOCOL_DB_LOGIC_H} ${PROTOCOL_DB_LOGIC_CPP} ${PROTOCOL_DB_STRUCT_H} ${PROTOCOL_DB_STRUCT_CPP}" --dst=${NEW_PROTOCGEN_FILE_PATH}/

